package com.adu.springRedis.controller;

import com.adu.springRedis.domain.User;
import com.adu.springRedis.service.UserService;

import com.adu.springRedis.util.JsonResult;
import com.adu.springRedis.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Api(tags = "用户模块")
@RestController
@RequestMapping("/api/user")
public class UserController {
    @Autowired
    private UserService userService;

    /**
     * 查询记录
     * @param id
     * @return
     */
    @ApiOperation(value="获取用户信息",notes="注意问题点")
    @GetMapping("/find")
    public Result find(@RequestParam("id") int id){
        return JsonResult.Ok(userService.find(id));
    }

    /**
     * 新增记录
     * @param user
     * @return
     */
    @ApiOperation(value="新增用户信息",notes="注意问题点")
    @PostMapping("/insert")
    public Result insert(@RequestBody User user){
        userService.insert(user);
        return JsonResult.Ok("");
    }

    /**
     * 删除记录
     * @param id
     * @return
     */
    // RequestParam是从request里面取值，PathVariable从url模板里填充
    // 访问路径：http://localhost:8889/api/user/remove?id=10
    @ApiOperation(value="删除用户信息",notes="注意问题点")
    @DeleteMapping("/remove")
    public Result remove(@RequestParam("id") int id){
        userService.remove(id);
        return JsonResult.Ok("");
    }

    /**
     * 更新记录
     * @param user
     * @return
     */
    @ApiOperation(value="更新用户信息",notes="注意问题点")
    @PutMapping("/update")
    public Result Update(@RequestBody User user){
        userService.update(user);
        return JsonResult.Ok("");
    }
}